import Mock from 'mockjs'

// 基本数据类型:
// @boolean: 随机生成一个布尔值
// @natural(min, max): 随机生成一个自然数
// @integer(min, max): 随机生成一个整数
// @float(min, max, dmin, dmax): 随机生成一个小数
// @character(pool): 随机生成一个字符
// @string(pool, min, max): 随机生成一个字符串

// 日期和时间:
// @date(format): 随机生成一个日期
// @time(format): 随机生成一个时间
// @datetime(format): 随机生成一个日期时间

// 图片:
// @image(size, background, foreground, format, text): 随机生成一个图片地址

// 颜色:
// @color: 随机生成一个颜色值

// 文本:
// @paragraph(min, max): 随机生成一段文本
// @cparagraph(min, max): 随机生成一段中文文本
// @sentence(min, max): 随机生成一句话
// @csentence(min, max): 随机生成一句中文
// @word(min, max): 随机生成一个单词
// @cword(pool, min, max): 随机生成一个中文词语

// 名字:
// @first: 随机生成一个英文名
// @last: 随机生成一个英文姓
// @name: 随机生成一个英文全名
// @cfirst: 随机生成一个中文姓
// @clast: 随机生成一个中文名
// @cname: 随机生成一个中文全名

// 地址:
// @region: 随机生成一个地区
// @province: 随机生成一个省份
// @city(prefix): 随机生成一个城市
// @county(prefix): 随机生成一个县
// @zip: 随机生成一个邮编

// 其他:
// @guid: 随机生成一个 GUID
// @id: 随机生成一个 18 位身份证号码
// @increment: 自增整数

// 设置模拟数据的响应时间
Mock.setup({
  timeout: '200-600', // 表示响应时间介于 200ms 到 600ms 之间
})

// 定义一个函数来生成单个用户对象
function generateUser() {
  return Mock.mock({
    id: '@id', // 随机生成一个 id
    name: '@cname', // 随机生成一个中文名字
    'sex|1-2': 1,
    'age|18-60': 1, // 随机生成一个 18 到 60 之间的整数
    email: '@email', // 随机生成一个邮箱地址
    address: '@county(true)', // 随机生成一个地址
  })
}

// 使用 Mock.mock 方法来模拟 /mock/user 接口
Mock.mock('/mock/user', 'get', {
  data: [
    generateUser(),
    generateUser(),
    generateUser(),
    generateUser(),
    generateUser(),
    generateUser(),
    generateUser(),
    generateUser(),
    generateUser(),
    generateUser(),
  ], // 生成一个包含 10 个用户对象的数组
})
